import type { PageParams } from './common'

/**
 * 返回信息
 */
export interface OrderPayResult {
  /**
   * 交易关闭时间
   */
  closeTime: string
  /**
   * 发货时间
   */
  consignTime: string
  /**
   * 下单时间
   */
  createTime: string
  /**
   * 配送时间类型，1为不限，2为工作日，3为双休或假日
   */
  deliveryTimeType: number
  /**
   * 交易完成时间
   */
  endTime: string
  /**
   * 订单编号
   */
  id: string
  /**
   * 订单状态，1为待付款、2为待发货、3为待收货、4为待评价、5为已完成、6为已取消
   */
  orderState: number
  /**
   * 支付渠道，1支付宝、2微信
   */
  payChannel: number
  /**
   * 付款截止时间
   */
  payLatestTime: string
  /**
   * 实付金额
   */
  payMoney: string
  /**
   * 付款时间
   */
  payTime: string
  /**
   * 支付方式，1为在线支付，2为货到付款
   */
  payType: number
  /**
   * 邮费
   */
  postFee: string
  /**
   * 收货人地址
   */
  receiverAddress: string
  /**
   * 收货人
   */
  receiverContact: string
  /**
   * 收货人手机
   */
  receiverMobile: string
  /**
   * 商品集合
   */
  skus: Skus[]
  /**
   * 金额合计
   */
  totalMoney: string
  /**
   * 数量合计
   */
  totalNum: string
}

/**
 * 商品信息
 */
export interface Skus {
  /**
   * 单价
   */
  curPrice: number
  /**
   * sku id
   */
  id: string
  /**
   * 图片地址
   */
  image: string
  /**
   * 商品名称
   */
  name: string
  /**
   * 属性集合
   */
  properties: Property[]
  /**
   * 数量
   */
  quantity: string
  /**
   * 实付金额
   */
  realPay: number
  /**
   * spu id
   */
  spuId: string
  /**
   * 小计
   */
  totalMoney: number
  /** 属性文本 */
  attrsText?: string
}

/**
 * 属性信息
 */
export interface Property {
  /**
   * 属性名称，如 颜色
   */
  propertyMainName: string
  /**
   * 属性值名称，如 黑色
   */
  propertyValueName: string
}

/** 物流信息 返回值类型 */
export type OrderLogisticResult = {
  /** 快递公司 */
  company: {
    /** 公司名称 */
    name: string
    /** 快递编号 */
    number: string
    /** 联系电话 */
    tel: string
  }
  /** 商品件数 */
  count: number
  /** 物流日志 */
  list: LogisticItem[]
}

/** 物流日志 */
export type LogisticItem = {
  /** 信息ID */
  id: string
  /** 信息文字 */
  text: string
  /** 时间 */
  time: string
}

/** 订单列表参数 */
export type OrderListParams = PageParams & { orderState: number }

/** 订单列表 */
export type OrderListResult = {
  /** 总记录数 */
  counts: number
  /** 数据集合    [ 订单信息 ] */
  items: OrderItem[]
  /** 当前页码 */
  page: number
  /** 总页数 */
  pages: number
  /** 页尺寸 */
  pageSize: number
}

/** 订单列表项 */
export type OrderItem = OrderPayResult & {
  /** 总件数 */
  totalNum: number
}
